package com.example.server.controller;

import com.example.server.security.MyRequired;
import com.example.server.service.IAdminService;
import com.example.common.vo.RespBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * RestController
 * Rest @ResponseBody 返回数据的时候，就不再使用ViewResolver的功能，而是直接返回字符串
 * json格式的字符串；
 * Controller 控制器，和页面进行交互
 */
@RestController
@Api(tags = "测试控制器")
public class TestController {
    @Autowired
    private IAdminService iAdminService;
    //    @GetMapping("/test")
//    @ApiOperation("测试1")
//    @Authenticated
//    @PreAuthorize(roles = {"ROLE_manager", "ROLE_admin"})
//    public RespBean test() {
//
////        int i = 1/0;
//        return RespBean.success();
//    }
//    /**
//     * @RequestParam Java Web，HttpServletRequest#getParameter()
//     *  1 请求参数 /xx/xx?uid=x&word=key/&numId=cccc
//     *  2 如果参数不加任何注解，默认使用该注解，并且该注解中的key值按照变量名来
//     *
//     * @RequestBody 从请求体中读取json格式的数据，将json字符串翻译成java对象
//     *
//     * @PathVariable
//     *
//     * @RequestHeader 从请求头中获取数据
//     */
//
//    @GetMapping("/test2")
//    @ApiOperation("测试2")
//    @Authenticated
//    @PreAuthorize(type = "hasAllRoles", roles = {"ROLE_manager", "ROLE_admin"})
//    public RespBean test2(String id) {
//        return RespBean.success(id);
//    }
//
//    @GetMapping("/test3")
//    @ApiOperation("测试3")
////    @PreAuthorize(roles = {"ROLE_manager"})
//    @PreAuthorize(roles = {"ROLE_manager", "ROLE_admin"})
//    public RespBean test2(Admin admin) {
//
//        return RespBean.success(admin);
//    }
//
//    @PostMapping("/test4")
//    @ApiOperation("测试4")
//    public RespBean test4(@RequestBody Admin admin) {
//
//        return RespBean.success(admin);
//    }
//
//    @DeleteMapping("/test5/{numId}")
//    @ApiOperation("测试5")
//    public RespBean test5(@PathVariable("numId") String id) {
//
//        return RespBean.success(id);
//    }
//
//    @GetMapping("/test6")
//    @YebRequestLog(methodName = "测试6")
//    public RespBean test6(@RequestHeader("Yeb-Token") String token) {
//
//        return RespBean.success(token);
//    }
    @ApiOperation("数据效验")
    @GetMapping("/test")
    public RespBean test(@MyRequired @RequestParam("age") String age) {

        return RespBean.success("age参数正常");
    }

    @ApiOperation("存储过程删除用户")
    @GetMapping("/test2")
    public RespBean test2(@PathVariable Integer id){
        iAdminService.deleteAdmin(id);
        return RespBean.success();
    }
//    @PostMapping("/test8")
//    @YebVerify
//    public RespBean test8(Custom custom){
//        //验证签名的操作
//        return RespBean.success(custom);
//    }
}
